/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Vista;
import java.sql.*;

import DAO_Modelo.dao.AnalistaDao;
import DAO_Modelo.dto.Analista;
import DAO_Modelo.exceptions.AnalistaDaoException;
import DAO_Modelo.factory.AnalistaDaoFactory;

import DAO_Modelo.dao.SocioDao;
import DAO_Modelo.dto.Socio;
import DAO_Modelo.exceptions.SocioDaoException;
import DAO_Modelo.factory.SocioDaoFactory;

import DAO_Modelo.dao.GaranteDao;
import DAO_Modelo.dto.Garante;
import DAO_Modelo.exceptions.GaranteDaoException;
import DAO_Modelo.factory.GaranteDaoFactory;

import DAO_Modelo.dao.HistorialDao;
import DAO_Modelo.dto.Historial;
import DAO_Modelo.exceptions.HistorialDaoException;
import DAO_Modelo.factory.HistorialDaoFactory;

import DAO_Modelo.dao.NotificacionesjudicialesDao;
import DAO_Modelo.dto.Notificacionesjudiciales;
import DAO_Modelo.exceptions.NotificacionesjudicialesDaoException;
import DAO_Modelo.factory.NotificacionesjudicialesDaoFactory;

import DAO_Modelo.dao.PrestamoDao;
import DAO_Modelo.dto.Prestamo;
import DAO_Modelo.exceptions.PrestamoDaoException;
import DAO_Modelo.factory.PrestamoDaoFactory;

import DAO_Modelo.dao.DeudaDao;
import DAO_Modelo.dto.Deuda;
import DAO_Modelo.exceptions.DeudaDaoException;
import DAO_Modelo.factory.DeudaDaoFactory;

import DAO_Modelo.dao.CronogramapagoDao;
import DAO_Modelo.dao.CuentaDao;
import DAO_Modelo.dto.Cronogramapago;
import DAO_Modelo.dto.Cuenta;
import DAO_Modelo.exceptions.CronogramapagoDaoException;
import DAO_Modelo.factory.CronogramapagoDaoFactory;
import DAO_Modelo.factory.CuentaDaoFactory;
import javax.swing.UIManager;
import javax.swing.UIManager.LookAndFeelInfo;
import javax.swing.UnsupportedLookAndFeelException;
/**
 *
 * @author jose,digberht
 */
public class Sigele {

        public static Busqueda busqueda;
        public static Saldo_Prestamo saldo_prestamo;
        public static Estado_Demanda estado_demanda;
        public static Reportes reportes;
        public static Historias historia;
        public static EstadoCuenta estado_cuenta;
        public static SimulacionPagos simulacion_pagos;
        public static Logueo l;
        public static SimulCronog simul_cronog;
        public static Modif_Reg_Socio modif_reg_socio;
        
        public static String[] Distritos=new String[] {"","Cerro Colorado","Alto Selva Alegre", "Tiabaya", "Jacobo Hunter",
                                    "Paucarpata","Socabaya","Cayma","Sachaca",
                                    "Miraflores","Mariano Melgar","Yanahuara","Jose Luis Bustamante y Rivero"};
        public static String[] EstadoProceso=new String[] {"","Incumplimiento","Audiencia", "Denuncia"};
        /*Coneccion de bd*/
        public static Connection connexion = null;
        
        /*variables DAO*/
        public static AnalistaDao analistaDao;
        public static Analista analistadto,analistadtoLista[];
    
        public static SocioDao socioDao;
        public static Socio sociodto,sociodtoLista[];
        
        public static GaranteDao garanteDao;
        public static Garante garantedto,garantedtoLista[];
        
        public static HistorialDao historialDao;
        public static Historial historialdto,historialdtoLista[];
        
        public static NotificacionesjudicialesDao not_judDao;
        public static Notificacionesjudiciales not_juddto,not_juddtoLista[];

        public static PrestamoDao prestamoDao;
        public static Prestamo prestamodto, prestamodtoLista[];
        
        public static DeudaDao deudaDao;
        public static Deuda deudadto, deudadtoLista[];
        
        public static CronogramapagoDao cronogPagoDao;
        public static Cronogramapago cronogPagodto, cronogPagodtoLista[];
        
        public static CuentaDao cuentaDao;
        public static Cuenta cuentadto, cuentaLista[];

       
        /** 
	 * Funcion principal dela aplicacion el cual administra las demas interfaces, seteando editando
	 */  
    public static void main(String[] args) {
       
        try {
			for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
				if ("Nimbus".equals(info.getName())) {
					UIManager.setLookAndFeel(info.getClassName());
					break;
				}
			}
		} catch (UnsupportedLookAndFeelException e) {
		} catch (ClassNotFoundException e) {
		} catch (InstantiationException e) {
		} catch (IllegalAccessException e) {
		}

       busqueda= new Busqueda();
       
       reportes= new Reportes();
       
       simulacion_pagos= new SimulacionPagos();
       l=new Logueo();
        
       ConectarDB();
       
        analistaDao = AnalistaDaoFactory.create(connexion);
        analistadto=new Analista();
    
        socioDao = SocioDaoFactory.create(connexion);
        sociodto = new Socio();
        
        garanteDao = GaranteDaoFactory.create(connexion);  
        garantedto = new Garante();
        
        historialDao = HistorialDaoFactory.create(connexion);
        historialdto = new Historial();
        
        not_judDao = NotificacionesjudicialesDaoFactory.create(connexion);
        not_juddto = new Notificacionesjudiciales();
        
        prestamoDao = PrestamoDaoFactory.create(connexion);
        prestamodto = new Prestamo();
        
        deudaDao = DeudaDaoFactory.create(connexion);
        deudadto = new Deuda();
        
        cronogPagoDao = CronogramapagoDaoFactory.create(connexion);
        cronogPagodto = new Cronogramapago();
        
        cuentaDao =CuentaDaoFactory.create(connexion);
        cuentadto =new Cuenta();
        
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                l.setVisible(true);
            }
        });
        
    }
    /** 
	 * Funcion que maneja la conexion con la base de datos
	 */  
    
    public static void ConectarDB(){
     try{
           
            Class.forName("com.mysql.jdbc.Driver");
            connexion = DriverManager.getConnection("jdbc:mysql://localhost/sigeledb","root","123");
         if (connexion!=null){
            System.out.println("Conección a base de datos "+connexion.getCatalog()+" OK");
         }
      }catch(SQLException e){
         System.out.println(e);
      }catch(ClassNotFoundException e){
         System.out.println(e);
      }
    }
}
